package com.xtu.hrms.util;

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {

    public static String generateMD5ForString(String str){
        MessageDigest md = null;
        try {
            md = MessageDigest.getInstance("MD5");
            //更新摘要数据
            md.update(str.getBytes(StandardCharsets.UTF_8));
            //生成摘要数组
            byte[] digest = md.digest();
            //清空摘要数据，以便下次使用
            md.reset();
            StringBuffer stringBuffer = new StringBuffer();
            int temp;
            for (int i=0;i<digest.length;i++) {
                //将数据转化为0到255之间的数据
                temp=digest[i]&0xff;
                if (temp < 16) {
                    stringBuffer.append(0);
                }
                //Integer.toHexString(temp)将10进制数字转换为16进制
                stringBuffer.append(Integer.toHexString(temp));
            }
            return stringBuffer.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null ;
    }
}
